package user;

import book.Book;
import book.BookList;
import ioperations.IOperation;

import java.awt.*;
import java.util.Scanner;

/**
 * Created with IntelliJ IDEA.
 * Description:
 * User: 苏李涛
 * Date: 2024-05-24
 * Time: 19:31
 */
public abstract class User {
    protected String name;

    //定义，接口命名，类型的数组，后续配合，
    // 【return new AdminUser(name);】就可以看出,再加上接口调用的方法，就知道，操作了哪一个方法
    protected IOperation[] iOperations;
    //要根据子类，来初始化，父类成员变量
    public User(String name) {
        this.name = name;
    }
    public abstract int menu();

    //这里封装一个方法，提供给，Main调用。
    public void DoIOperation(int choice, BookList bookList) {
        //这里，iOperations数组，里有我们要的对象，通过，数组里的对象，调用接口里的方法
        iOperations[choice].work(bookList);
    }
}
